if select(2, UnitClass("player")) ~= "WARRIOR" then return end
local GetSpellInfo = DrDamage.SafeGetSpellInfo
local GetMastery = GetMastery
local GetPrimaryTalentTree = GetPrimaryTalentTree
local math_min = math.min
local math_abs = math.abs
local select = select
local UnitPower = UnitPower
local UnitHealth = UnitHealth
local UnitHealthMax = UnitHealthMax
local UnitDamage = UnitDamage
local GetCritChance = GetCritChance
local GetTalentInfo = GetTalentInfo
local IsDualWielding = IsDualWielding
local IsSpellKnown = IsSpellKnown

--NOTE; One-Handed Weapon Specialization is handled by API (7th return of UnitDamage("player"), Two-Handed Weapon Specialization is multiplied into weapon damage range

function DrDamage:PlayerData()
	--Events
	local lastRage = 0
	local execute = GetSpellInfo(5308)
	self.Calculation["UNIT_POWER"] = function()
		local rage = UnitPower("player",1)
		if (rage < 30) and (lastRage > 30 or math_abs(rage - lastRage) >= 5) or (rage >= 30 and lastRage < 30) then
			lastRage = rage
			self:UpdateAB(execute)
		end
	end
	--Specials
	--Enraged Regeneration
	self.ClassSpecials[GetSpellInfo(55694)] = function()
		--Field dressing
		local rank = select(5,GetTalentInfo(1,2)) or 0
		local spec = GetPrimaryTalentTree()
		local bonus = 1 + ((spec == 2) and GetMastery() * 0.01 * 4.7 or 0)
		bonus = bonus * (1 + rank * 0.03) * (1 + rank * 0.1)
		return 0.3 * UnitHealthMax("player") * bonus, true
	end
--GENERAL
	self.Calculation["Stats"] = function( calculation, ActiveAuras, Talents, spell, baseSpell )
		local mastery = calculation.mastery
		local masteryLast = calculation.masteryLast
		local spec = calculation.spec
		if spec == 1 then
			if mastery > 0 and mastery ~= masteryLast then
				if baseSpell.AutoAttack then
					--Mastery: Strikes of Opportunity
					calculation.extraChance = mastery * 0.01 * 2.2
					calculation.masteryLast = mastery
				end
			end
		elseif spec == 2 then
			if mastery > 0 and mastery ~= masteryLast then
				--Increases the Weapon Damage of Raging Blow
				--Increases the damage bonus of Death Wish and Enrage
				--Increases the healing of Enraged Regeneration
				--Increases the Rage generated by Berserker Rage through Glyph of Berserker Rage
				if calculation.spellName == "Raging Blow" then
					local masteryBonus = calculation.masteryBonus
					if masteryBonus then
						calculation.WeaponDamage = calculation.WeaponDamage / masteryBonus
					end
					--Mastery: Unshackled Fury
					local bonus = 1 + mastery * 0.01 * 5.6
					calculation.WeaponDamage = calculation.WeaponDamage * bonus
					calculation.masteryLast = mastery
					calculation.masteryBonus = bonus
				end
			end
		end
	end
	local dwicon = "|T" .. select(3,GetSpellInfo(12867)) .. ":16:16:1:-1|t"
	local mastery_icon = "|T" .. select(3,GetSpellInfo(87500)) .. ":16:16:1:-1|t"
	self.Calculation["WARRIOR"] = function( calculation, ActiveAuras, Talents, spell, baseSpell )
		--Specialization
		local spec = calculation.spec
		if spec == 1 then
			--TODO: Check specialization is active
			if IsSpellKnown(86526) then
				calculation.strM = calculation.strM * 1.05
			end
			if self:GetNormM() == 3.3 and not baseSpell.NoWeapon then
				--Two-Handed Weapon Specialization
				calculation.wDmgM = calculation.wDmgM * 1.12
				calculation.dmgM = calculation.dmgM * 1.12
			end
			if calculation.mastery > 0 and baseSpell.AutoAttack then
				calculation.extraDamage = 0
				calculation.extraTicks = nil
				calculation.extraName = calculation.extraName and (calculation.extraName .. "+" .. mastery_icon) or mastery_icon
				local min, max = self:WeaponDamage(calculation, true)
				local value = 0.5 * (min + max)
				calculation.extra = value
				calculation.extraM = true
				calculation.E_dmgM = calculation.dmgM_global
				calculation.E_canCrit = true
				calculation.E_critM = 1 + 2 * self.Damage_critMBonus
			end
		elseif spec == 2 then
			--TODO: Check specialization is active
			if IsSpellKnown(86526) then
				calculation.strM = calculation.strM * 1.05
			end
			--Passive: Dual Wield Specialization
			calculation.offHdmgM = calculation.offHdmgM * 1.25
			--Precision (Passive)
			if baseSpell.AutoAttack then
				calculation.dmgM = calculation.dmgM * 1.4
				calculation.wDmgM = calculation.wDmgM * 1.4
			else
				calculation.wDmgM = calculation.wDmgM * 1.4
			end			
		end
		--Deep Wounds
		if Talents["Deep Wounds"] and (not calculation.NoCrits or calculation.spellName ~= "Rend") then
			if not calculation.unarmed or calculation.offHand and baseSpell.AutoAttack then
				calculation.extraDamage = 0
				calculation.extraWeaponDamage = Talents["Deep Wounds"] * calculation.bleedBonus
				calculation.extraWeaponDamage_dmgM = calculation.dmgM_global
				calculation.extraWeaponDamageChanceCrit = true
				calculation.extraName = dwicon
				calculation.extraTicks = 6
			end
			if calculation.offHand and baseSpell.AutoAttack then
				calculation.extraWeaponDamage_O = Talents["Deep Wounds"] * calculation.bleedBonus
				calculation.extraTicks = nil
			end
		end
	end
--ABILITIES
	self.Calculation["Heroic Strike"] = function( calculation, ActiveAuras, _, spell )
		if self:GetSetAmount("T9 - Damage") >= 4 then
			calculation.critPerc = calculation.critPerc + 5
		end
	end
	self.Calculation["Shield Slam"] = function( calculation, ActiveAuras, Talents )
		if ActiveAuras["Shield Block"] and Talents["Heavy Repercussions"] then
			--Additive 4.0
			calculation.dmgM_Add = calculation.dmgM_Add + Talents["Heavy Repercussions"]
		end
		--Glyph of Shield Slam (4.0)
		if self:HasGlyph(58375) then
			--Additive 4.0
			calculation.dmgM_Add = calculation.dmgM_Add + 0.1
		end
		if self:GetSetAmount("T7 - Prot") >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.1
		end
		if self:GetSetAmount( "T10 - Prot" ) >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.2
		end
		if self:GetSetAmount( "T11 - Prot" ) >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.05
		end
		if self:GetSetAmount( "T12 - Prot" ) >= 2 then
			--TODO: Fire damage?
			calculation.dmg = calculation.dmgM * 1.2
		end		
		
	end
	self.Calculation["Devastate"] = function( calculation, ActiveAuras, _, spell )
		--Glyph of Devastate (4.0)
		if self:HasGlyph(58388) then
			calculation.critPerc = calculation.critPerc + 5
		end
		--TODO: Figure out what's wrong with the calculation (slightly too low calculated damage)
		local sunder
		if ActiveAuras["Sunder Armor"] then
			sunder = math_min(3, ActiveAuras["Sunder Armor"])
			if sunder < 3 then
				calculation.armorM = calculation.armorM + 0.04
			end
		else
			calculation.armorM = calculation.armorM + 0.04
			sunder = 0
		end
		calculation.minDam = calculation.minDam + sunder * calculation.minDam
		calculation.maxDam = calculation.maxDam + sunder * calculation.maxDam

		if self:GetSetAmount("T8 - Prot") >= 2 then
			calculation.critPerc = calculation.critPerc + 10
		end
		if self:GetSetAmount("T9 - Prot") >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.05
		end
	end
	self.Calculation["Execute"] = function( calculation, ActiveAuras )
		local rage = math_min(20,UnitPower("player", 1) - 10)
		if rage > 0 then
			calculation.APBonus = calculation.APBonus + (rage/20) * 2 * calculation.APBonus
			calculation.minDam = calculation.minDam - 1
			calculation.maxDam = calculation.maxDam - 1
			calculation.actionCost = calculation.actionCost + rage
		end
	end
	self.Calculation["Cleave"] = function( calculation )
		--Glyph of Cleaving (4.0)
		if self:HasGlyph(58366) then
			calculation.aoe = calculation.aoe + 1
		end
	end
	self.Calculation["Mortal Strike"] = function( calculation )
		--Glyph of Mortal Strike (4.0, additive - 3.3.3)
		if self:HasGlyph(58368) then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.1
		end
		if self:GetSetAmount("T8 - Damage") >= 4 then
			calculation.critPerc = calculation.critPerc + 10
		end
		if self:GetSetAmount("T11 - Damage") >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.05
		end
	end
	self.Calculation["Overpower"] = function( calculation )
		--Glyph of Overpower (4.0)
		if self:HasGlyph(58386) then
			--CHECK
			calculation.dmgM_Add = calculation.dmgM_Add + 0.1
		end
	end
	self.Calculation["Revenge"] = function( calculation, _, Talents )
		--Glyph of Revenge (4.0)
		if self:HasGlyph(58364) then
			--CHECK
			calculation.dmgM_Add = calculation.dmgM_Add + 0.1
		end
		if Talents["Improved Revenge"] then
			if calculation.targets >= 2 then
				calculation.aoe = 2
				calculation.aoeM = Talents["Improved Revenge"]
			end
		end
	end
	self.Calculation["Bloodthirst"] = function( calculation )
		--Glyph of Bloodthirst (4.0)
		if self:HasGlyph(58367) then
			--CHECK
			calculation.dmgM_Add = calculation.dmgM_Add + 0.1
		end
		--Glyph of Bloody Healing (4.0)
		--if self:HasGlyph(58369) then
			--TODO: Increases the healing you receive from Bloodthirst by 40%.
		--end
		if self:GetSetAmount("T8 - Damage") >= 4 then
			calculation.critPerc = calculation.critPerc + 10
		end
		if self:GetSetAmount("T11 - Damage") >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.05
		end
	end
	self.Calculation["Slam"] = function( calculation, _ , Talents, _, baseSpell )
		if Talents["Single-Minded Fury"] then
			local mh, oh = self:GetNormM()
			if IsDualWielding() and mh ~= 3.3 and oh ~= 3.3 then
				calculation.DualAttack = 1
			end
		end
		--NOTE: Slam base damage is multiplied by weapon damage multiplier
		calculation.minDam = calculation.minDam * baseSpell.WeaponDamage
		calculation.maxDam = calculation.maxDam * baseSpell.WeaponDamage
		--Glyph of Slam (4.0)
		if self:HasGlyph(58385) then
			calculation.critPerc = calculation.critPerc + 5
		end
		if self:GetSetAmount("T7 - Damage") >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.1
		end
		if self:GetSetAmount("T9 - Damage") >= 4 then
			calculation.critPerc = calculation.critPerc + 5
		end
	end
	self.Calculation["Shockwave"] = function( calculation )
		--Glyph of Shockwave (4.0)
		if self:HasGlyph(63325) then
			calculation.cooldown = calculation.cooldown - 3
		end
		if self:GetSetAmount( "T10 - Prot" ) >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.2
		end
	end
	self.Calculation["Victory Rush"] = function( calculation )
		--Glyph of Victory Rush (4.0)
		--if self:HasGlyph(58382) then
			--TODO?: Increases the total healing provided by your Victory Rush by 50%.
		--end
	end
	self.Calculation["Bladestorm"] = function( calculation )
		--Glyph of Bladestorm (4.0)
		if self:HasGlyph(63324) then
			calculation.cooldown = calculation.cooldown - 15
		end
	end
	self.Calculation["Strike"] = function( calculation )
		local bonus = math_min(9,calculation.playerLevel - 1)
		calculation.minDam = calculation.minDam + bonus
		calculation.maxDam = calculation.maxDam + bonus
	end
	self.Calculation["Raging Blow"] = function( calculation )
		--Glyph of Raging Blow (4.0)
		if self:HasGlyph(58370) then
			calculation.critPerc = calculation.critPerc + 5
		end
	end
	--self.Calculation["Rend"] = function( calculation )
		--BUG - the initial damage is applied to the dot and initially
	--end
--SETS
	self.SetBonuses["T7 - Damage"] = { 40525, 40527, 40528, 40529, 40530, 39605, 39606, 39607, 39608, 39609 }
	self.SetBonuses["T7 - Prot"] = { 40544, 40545, 40546, 40547, 40548, 39610, 39611, 39612, 39613, 39622 }
	self.SetBonuses["T8 - Damage"] = { 46146, 46148, 46149, 46150, 46151, 45429, 45430, 45431, 45432, 45433 }
	self.SetBonuses["T8 - Prot"] = { 46162, 46164, 46166, 46167, 46169, 45424, 45425, 45426, 45427, 45428 }
	self.SetBonuses["T9 - Damage"] = { 48386, 48387, 48388, 48389, 48390, 48371, 48372, 48373, 48374, 48375, 48391, 48392, 48393, 48394, 48395, 48396, 48397, 48398, 48399, 48400, 48376, 48377, 48378, 48379, 48380, 48385, 48384, 48383, 48382, 48381 }
	self.SetBonuses["T9 - Prot"] = { 48456, 48457, 48458, 48459, 48460, 48429, 48436, 48445, 48448, 48449, 48450, 48430, 48452, 48446, 48454, 48451, 48433, 48453, 48447, 48455, 48461, 48463, 48462, 48464, 48465, 48466, 48468, 48467, 48469, 48470 }
	self.SetBonuses["T10 - Prot"] = { 50846, 50847, 50849, 50848, 50850, 51215, 51224, 51216, 51223, 51217, 51222, 51218, 51221, 51219, 51220 }
	self.SetBonuses["T11 - Damage"] = { 60323, 60324, 60325, 60326, 60327, 65264, 65265, 65266, 65267, 65268 }
	self.SetBonuses["T11 - Prot"] = { 60328, 60329, 60330, 60331, 60332, 65269, 65270, 65271, 65272, 65273 }
	self.SetBonuses["T12 - Prot"] = { 71604, 71605, 71606, 71607, 71608 }
--AURA
--Player
	--Recklessness (Talent - 4.0)
	--TODO: Check which abilities gain crit chance
	self.PlayerAura[GetSpellInfo(1719)] = { Value = 50, ModType = "critPerc", ID = 1719, Not = { "Attack", "Shockwave", "Concussion Blow", "Heroic Throw", "Shattering Throw", "Thunder Clap" } }
	--Juggernaut (Talent - 4.0)
	self.PlayerAura[GetSpellInfo(65156)] = { Value = 25, ModType = "critPerc", Spells = { "Slam", "Mortal Strike" }, ID = 65156 }
	--Slaughter (Talent - 4.0)
	self.PlayerAura[GetSpellInfo(84584)] = { Value = 0.1, Apps = 3, Spells = { "Execute", "Overpower", "Slam", "Mortal Strike" }, ID = 84584 }
	--Meat Cleaver (Talent - 4.0)
	self.PlayerAura[GetSpellInfo(12329)] = { Value = 0.05, Ranks = 2, Apps = 3, Spells = { "Cleave", "Whirlwind" }, ID = 12329 }
	--Incite (Talent - 4.0)
	self.PlayerAura[GetSpellInfo(86627)] = { Value = 100, ModType = "critPerc", Spells = "Heroic Strike", ID = 86627, NoManual = true }
	--Thunderstruck (Talent - 4.0)
	self.PlayerAura[GetSpellInfo(87095)] = { Value = 0.05, Ranks = 2, Apps = 3, Spells = "Shockwave", ID = 12329 }
	--Shield Block (Ability - 4.0)
	self.PlayerAura[GetSpellInfo(2565)] = { ActiveAura = "Shield Block", Spells = "Shield Slam", ID = 2565 }
	--Bloodsurge (Talent - 4.0.6)
	self.PlayerAura[GetSpellInfo(46913)] = { Spells = "Slam", Value = 0.2, ID = 46913, NoManual = true }
	--Inner Rage (Ability - 4.0.6)
	self.PlayerAura[GetSpellInfo(1134)] = { Spells = { "Heroic Strike", "Cleave" }, ModType = "cooldown", Value = -1.5, ID = 1134 }
	
--Target
	--Sunder Armor (Ability - 4.0)
	self.TargetAura[GetSpellInfo(7386)] = { ActiveAura = "Sunder Armor", Apps = 3, Value = 0.04, ModType = "armorM", Category = "-12% Armor", Manual = GetSpellInfo(7386), ID = 7386 }
	--Colossus Smash (Ability - 4.0)
	self.TargetAura[GetSpellInfo(86346)] = { Value = 1, ModType = "armorM", ID = 86346, SelfCast = true }

	self.spellInfo = {
		[GetSpellInfo(78)] = {
			["Name"] = "Heroic Strike",
			["ID"] = 78,
			["Data"] = { ["APBonus"] = 0.6, --[[["PPL_start"] = 14, ["PPL"] = 0.5--]] },
			[0] = { Cooldown = 3 },
			[1] = { 8 },
		},
		[GetSpellInfo(772)] = {
			["Name"] = "Rend",
			["ID"] = 772,
			["Data"] = { 0.093 },
			--BUG: Ticks set to 2.5 to account for extra initial tick
			[0] = { WeaponDamage = 0.25, Hits = 6, eDot = true, eDuration = 15, Ticks = 2.5, Bleed = true, NoNormalization = true },
			[1] = { 0 },
		},
		[GetSpellInfo(7384)] = {
			["Name"] = "Overpower",
			["ID"] = 7384,
			["Data"] = { 0, ["weaponDamage"] = 0.77, ["PPL_start"] = 22, ["PPL"] = 0.828 },
			[0] = { Unavoidable = true },
			[1] = { 0 },
		},
		[GetSpellInfo(6572)] = {
			["Name"] = "Revenge",
			["ID"] = 6572,
			["Data"] = { 1.598, 0.2 },
			[0] = { APBonus = 0.31, Cooldown = 5, },
			[1] = { 0, 0, },
		},
		[GetSpellInfo(6343)] = {
			["Name"] = "Thunder Clap",
			["ID"] = 6343,
			["Data"] = { 0.269, 0 },
			[0] = { APBonus = 0.228, Cooldown = 6, NoWeapon = true, AoE = true, Unavoidable = true },
			[1] = { 0 },
		},
		[GetSpellInfo(845)] = {
			["Name"] = "Cleave",
			["ID"] = 845,
			[0] = { APBonus = 0.45, Cooldown = 3, AoE = 3, },
			[1] = { 6 },
		},
		[GetSpellInfo(5308)] = {
			["Name"] = "Execute",
			["ID"] = 5308,
			--Blizzard scales from 0.437 * (57 + 0.672 * (playerLevel - 16))/100 (from 0.24909 to 0.437)
			["Data"] = { ["APBonus"] = 0.24909, ["PPL_start"] = 16, ["PPL"] = 0.293609375 } ,
			[0] = { },
			[1] = { 10 },
		},
		[GetSpellInfo(20252)] = {
			["Name"] = "Intercept",
			["ID"] = 20252,
			[0] = { APBonus = 0.12, Cooldown = 30, NoWeapon = true },
			[1] = { 0 },
		},
		[GetSpellInfo(1464)] = {
			["Name"] = "Slam",
			["ID"] = 1464,
			["Data"] = { 0.383, ["weaponDamageM"] = true, ["weaponDamage"] = 1.1, ["PPL_start"] = 44, ["PPL"] = 0.973 },
			[0] = { },
			[1] = { 0 },
		},
		[GetSpellInfo(23881)] = {
			["Name"] = "Bloodthirst",
			["ID"] = 23881,
			["Data"] = { 0, ["APBonus"] = 0.43, ["PPL_start"] = 10, ["PPL"] = 0.529 },
			[0] = { Cooldown = 3 },
			[1] = { 0 },
		},
		[GetSpellInfo(12294)] = {
			["Name"] = "Mortal Strike",
			["ID"] = 12294,
			["Data"] = { 0.376, ["weaponDamage"] = 0.8, ["PPL_start"] = 10, ["PPL"] = 1 },
			[0] = { Cooldown = 4.5 },
			[1] = { 0 },
		},
		[GetSpellInfo(23922)] = {
			["Name"] = "Shield Slam",
			["ID"] = 23922,
			["Data"] = { 1.706, 0.05, ["c_scale"] = 0.3 },
			[0] = { APBonus = 0.6, NoWeapon = true, Cooldown = 6, --[[Offhand = select(7, GetItemInfo(40700)),--]] },
			[1] = { 0, 0, },
		},
		[GetSpellInfo(20243)] = {
			["Name"] = "Devastate",
			["ID"] = 20243,
			["Data"] = { 0.759, ["weaponDamage"] = 1.09, ["PPL_start"] = 39, ["PPL"] = 1 },
			[0] = { },
			[1] = { 0 },
		},
		[GetSpellInfo(34428)] = {
			["Name"] = "Victory Rush",
			["ID"] = 34428,
			[0] = { APBonus = 0.56, NoWeapon = true },
			[1] = { 0 },
		},
		[GetSpellInfo(46968)] = {
			["Name"] = "Shockwave",
			["ID"] = 46968,
			[0] = { APBonus = 0.75, NoWeapon = true, AoE = true, Unavoidable = true, Cooldown = 20 },
			[1] = { 0 },
		},
		[GetSpellInfo(1680)] = {
			["Name"] = "Whirlwind",
			["ID"] = 1680,
			["Data"] = { 0, ["weaponDamage"] = 0.46, ["PPL_start"] = 36, ["PPL"] = 0.432 },
			[0] = { DualAttack = true, Cooldown = 10, AoE = true },
			[1] = { 0 },
		},
		[GetSpellInfo(46924)] = {
			["Name"] = "Bladestorm",
			["ID"] = 46924,
			[0] = { WeaponDamage = 1.5, DualAttack = true, Cooldown = 90, Hits = 7, AoE = true },
			[1] = { 0 },
		},
		[GetSpellInfo(12809)] = {
			["Name"] = "Concussion Blow",
			["ID"] = 12809,
			[0] = { APBonus = 0.75, Cooldown = 30 },
			[1] = { 0 },
		},
		[GetSpellInfo(57755)] = {
			["Name"] = "Heroic Throw",
			["ID"] = 57755,
			[0] = { APBonus = 0.75, Cooldown = 60 },
			[1] = { 12 },
		},
		[GetSpellInfo(64382)] = {
			["Name"] = "Shattering Throw",
			["ID"] = 64382,
			[0] = { APBonus = 0.5, Cooldown = 300 },
			[1] = { 12 },
		},
		[GetSpellInfo(88161)] = {
			["Name"] = "Strike",
			["ID"] = 88161,
			[0] = { Cooldown = 3 },
			[1] = { 10, 15 },
		},
		[GetSpellInfo(86346)] = {
			["Name"] = "Colossus Smash",
			["ID"] = 86346,
			[0] = { WeaponDamage = 1.5, Cooldown = 20 },
			[1] = { 120 },
		},
		[GetSpellInfo(6544)] = {
			["Name"] = "Heroic Leap",
			["ID"] = 6544,
			[0] = { APBonus = 0.5, Cooldown = 60, NoWeapon = true },
			[1] = { 1 },
		},
		[GetSpellInfo(85288)] = {
			["Name"] = "Raging Blow",
			["ID"] = 85288,
			["Data"] = { ["weaponDamage"] = 0.72, ["PPL_start"] = 39, ["PPL"] = 0.683 },
			[0] = { DualAttack = true, Cooldown = 6 },
			[1] = { 0 },
		},
	}
	self.talentInfo = {
	--ARMS:
		--War Academy (additive?)
		[GetSpellInfo(84570)] = {	[1] = { Effect = 0.05, Spells = { "Mortal Strike", "Raging Blow", "Devastate", "Victory Rush", "Slam" }, }, },
		--Deep Wounds
		[GetSpellInfo(12834)] = {	[1] = { Effect = 0.16, Spells = "All", ModType = "Deep Wounds", }, },
		--Taste for Blood
		[GetSpellInfo(56636)] = {	[1] = { Effect = 20, Spells = "Overpower", ModType = "critPerc" }, },
		--Impale (additive - 3.3.3)
		[GetSpellInfo(16493)] = {	[1] = { Effect = 0.1, Spells = { "Mortal Strike", "Slam", "Overpower" }, ModType = "critM" }, },
		--Improved Slam (additive?)
		[GetSpellInfo(86655)] = {	[1] = { Effect = 0.1, Spells = "Slam" }, },
		--Sudden Death
		[GetSpellInfo(29723)] = {	[1] = { Effect = -5, Spells = "Execute", ModType = "actionCost" }, },

	--FURY:
		--Cruelty
		[GetSpellInfo(12320)] = {	[1] = { Effect = 5, Spells = { "Bloodthirst", "Mortal Strike", "Shield Slam" }, ModType = "critPerc" }, },
		--Skirmisher
		[GetSpellInfo(29888)] = {	[1] = { Effect = -10, Spells = "Heroic Leap", ModType = "cooldown" }, },
		--Single-Minded Fury
		[GetSpellInfo(81099)] = {	[1] = { Effect = 0.2, Spells = "Slam", ModType = "Single-Minded Fury" }, },

	--PROTECTION:
		--Incite
		[GetSpellInfo(50685)] = {	[1] = { Effect = 5, Spells = "Heroic Strike", ModType = "critPerc" }, },
		--Gag Order
		[GetSpellInfo(12311)] = {	[1] = { Effect = -15, Spells = "Heroic Throw", ModType = "cooldown" }, },
		--Improved Revenge (additive - 3.3.3)
		[GetSpellInfo(12797)] = {	[1] = { Effect = 0.3, Spells = "Revenge" },
									[2] = { Effect = 0.5, Spells = "Revenge", ModType = "Improved Revenge" }, },
		--Thunderstruck (additive?)
		[GetSpellInfo(80979)] = {	[1] = { Effect = 0.03, Spells = { "Rend", "Cleave", "Thunder Clap" }, }, },
		--Heavy Repercussions (additive - 4.0)
		[GetSpellInfo(86894)] = {	[1] = { Effect = 0.5, Spells = "Shield Slam", ModType = "Heavy Repercussions" }, },
		--Sword and Board
		[GetSpellInfo(46951)] = {	[1] = { Effect = 5, Spells = "Devastate", ModType = "critPerc" }, },
	}
end